1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, apparatus, and products for memory page de-duplication in a computer system that includes a plurality of virtual machines.
2. Description of Related Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely complicated devices. Today's computers are much more sophisticated than early systems such as the EDVAC. Computer systems typically include a combination of hardware and software components, application programs, operating systems, processors, buses, memory, input/output devices, and so on. As advances in semiconductor processing and computer architecture push the performance of the computer higher and higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
A single computer system today may, for example, support execution of a multiple virtual machines. A virtual machine is a logical partition of a machine that is usually different from the target machine upon which it is being simulated. Physical characteristics of a computing platform—computer processors, computer memory, I/O adapters, and the like—are abstracted from the perspective of an operating system and other software applications that execute within the virtual machine.
In some computing systems, many virtual machines may be assigned a portion of dedicated memory at the time of establishing the virtual machine. Any one of the virtual machines may, at any given time, have one or more memory pages that are identical to memory pages of other virtual machines. In fact, in some instances, a single virtual machine may have multiple, identical pages of memory. In such an environment, however, cache memories utilized by the virtual machines may have multiple separate instances of the identical pages in the cache. Further, because separate virtual machines may be accessing identical pages at different addresses, there is a higher probability of a cache miss for that page which results in additional loading of the page into cache even if an identical instance of that page is already in the cache.